/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
var registroTipoDato=null;
var winMantenerTipoDato=null;

function gestionaTipoDato()
{
    var dsTipoDato=new Ext.data.Store({
        autoDestroy: true,
        url: "lista-tipo-dato",
        reader: new Ext.data.JsonReader(
        {
            root: "tipodato",
            fields:
            [
            {
                name: "ntidaIdentificador",
                type: "integer"
            },
            {
                name: "dtidaFechaCreacion",
                type: "string"
            },
            {
                name: "ctidaDescripcion",
                type: "string"
            },
            {
                name: "btidaActivo",
                type: "integer"
            },
            {
                name: "ctidaFuncionValidador",
                type: "string"
            }
            ]
        })
    });
    dsTipoDato.on("exception",function(proxy, type, action, options, response, arg){
        Ext.MessageBox.alert("Error","Sucedio un error al cargar los perfiles"+response.responseText);
    });

    var grdTipoDato=new Ext.grid.GridPanel({
        store: dsTipoDato,
        loadMask: false,
        height:470,
        width:1050,
        border:true,
        frame: true,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            iconCls:false,
            minLength:2,
            width: 190
        })],
        columns:
        [new Ext.grid.RowNumberer(),
        {
            header: "Descripción Tipo Dato",
            dataIndex: "ctidaDescripcion",
            width: 200,
            sortable:true
        },{
            header: "Fecha Creación",
            dataIndex: "dtidaFechaCreacion",
            width: 200,
            sortable:true
        },{
            header: "Función Asociada",
            dataIndex: "ctidaFuncionValidador",
            width: 200,
            sortable:true
        }
        ],
        tbar:[{
            text:'Agregar',
            iconCls:'icon-add',
            handler: function(){
                mantenerTipoDato(true);
            }
        }, '-', {
            text:'Modificar',
            iconCls:'icon-modify',
            handler: function(){
                //alert("hola");
                mantenerTipoDato(false);
            }
        },'-',{
            text:'Eliminar',
            iconCls:'icon-delete',
            handler: function(){
                eliminarTipoDato()
            }
        }]

    });
    var seleccionPerfil=grdTipoDato.getSelectionModel();
    seleccionPerfil.on("rowselect",function(sm,fila,registro){
        registroTipoDato=registro;
    });

    dsTipoDato.load();
    var win = new Ext.Window({
        title:'Mantenimiento de Tipo de Dato',
        closeAction:'destroy',
        width:1055,
        x:0,
        y:0,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        layout: 'fit',
        items:grdTipoDato
    });
    win.show();
}

function mantenerTipoDato(nuevo){
    var frmGestionarTipoDato =new Ext.Panel({
        bodyBorder:true,
        height:400,
        bodyStyle: "background-color:#DFE8F6; border:0"
    });
    new Ajax.Request("frmGestionarTipoDato.html",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            frmGestionarTipoDato.html=transport.responseText;
            winMantenerTipoDato= new Ext.Window({
                title: (nuevo ? 'Agregar ' : 'Modificar ') + 'Tipo de dato',
                closeAction:'destroy',
                width:410,
                height:220,
                x: 500,
                y:200,
                items:[frmGestionarTipoDato],
                shim:false,
                modal:true,
                maximizable:true,
                minimizable:false,
                animCollapse:false,
                resizable:false,
                constrainHeader:true,
                bbar:[{
                    text:'Grabar',
                    iconCls:'icon-save',
                    handler: function(){
                        if (nuevo)
                            insertarTipoDato();
                        else
                                    
                            actualizarTipoDato();
                    }
                }, '-', {
                    text:'Cancelar',
                    iconCls:'icon-cancel',
                    handler: function(){
                        winMantenerTipoDato.destroy();
                    }
                }]
            });
            winMantenerTipoDato.show();
            winMantenerTipoDato.focus();
            if (!nuevo){
                $("frmgestionartipodato").ntidaIdentificador.value = registroTipoDato.data.ntidaIdentificador;
                $("frmgestionartipodato").ctidaDescripcion.value = registroTipoDato.data.ctidaDescripcion;
                $("frmgestionartipodato").ctidaFuncionValidador.value = registroTipoDato.data.ctidaFuncionValidador;
            }
        },
        onFailure:function(t){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+t.responseText);
        }
    });
}


function insertarTipoDato(){
//        new Ajax.Request("tipo-dato!agregar",{
//            method:"post",
//            parameters: $("frmgestionartipodato").serialize(),
//            onSuccess: function(transport){
//                var operacion =transport.responseText.evalJSON();
//                if (operacion.success){
//                    Information("Aviso del Sistema",operacion.mensaje);
//                }else{
//                    Information("Aviso del Sistema",operacion.mensaje);
//                }
//                winMantenerTipoDato.destroy();
//                gestionaTipoDato();
//            },
//            onFailure:function(transport){
//                Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
//            }
//        });
}

function actualizarTipoDato(){
    new Ajax.Request("tipo-dato!modificar",{
        method:"post",
        parameters: $("frmgestionartipodato").serialize(),
        onSuccess: function(transport){
            var operacion =transport.responseText.evalJSON();
            if (operacion.success){
                Information("Aviso del Sistema",operacion.mensaje);
            }else{
                Information("Aviso del Sistema",operacion.mensaje);
            }
            winMantenerTipoDato.destroy();
            gestionaTipoDato();
        },
        onFailure:function(transport){
            Information("Aviso del Sistema","Sucedio un error al intentar cargar el formulario"+transport.responseText);
        }
    });
}

function eliminarTipoDato(){
    Ext.MessageBox.confirm("Confirmación", "Eliminar Registro", function(button){
        if(button=="yes"){
            new Ajax.Request("tipo-dato!eliminar",{
                method:"post",
                parameters:{
                    ntidaIdentificador: registroTipoDato.data.ntidaIdentificador
                },
                onSuccess: function(transport){
                    var operacion = transport.responseText.evalJSON();
                    if (operacion.success){
                        Information("Aviso del Sistema",operacion.mensaje);
                    }else{
                        Information("Aviso del Sistema",operacion.mensaje);
                    }
                    gestionaTipoDato();
                },
                onFailure: function(transport){
                    Information("Aviso del Sistema","Sucedio un error al intentar eliminar el registro"+transport.responseText);
                }
            });
        }
    });
}